<?php

namespace Nece\Sdk\Coze\Api;

use Nece\Sdk\Coze\ApiAbstract;

class Folders extends ApiAbstract
{
    /**
     * 查询文件夹列表
     *
     * @author gjw
     * @created 2025-08-05 13:53:18
     *
     * @param string $workspace_id 待查询文件夹列表的工作空间 ID。
     * @param string $folder_type 文件夹类型，参数值固定为 development。
     * @param integer $page_num 分页查询时的页码。默认为 1，即从第一页数据开始返回。
     * @param integer $page_size 每页返回的数据条数，用于分页查询。默认值为 20，最大值为 50
     * @param string $parent_folder_id 指定要查询的文件夹的父级文件夹 ID。当需要查看某个文件夹下的子文件夹列表时，需传入该文件夹的 ID。若不传或传入 0，则表示查询工作空间根目录下的文件夹。
     * @return void
     */
    public function listFolder(string $workspace_id, string $folder_type = 'development', int $page_num = 1, int $page_size = 20, string $parent_folder_id = '')
    {
        $api = '/v1/folders';
        $query = array(
            'workspace_id' => $workspace_id,
            'folder_type' => $folder_type,
            'page_num' => $page_num,
            'page_size' => $page_size,
        );

        if (!empty($parent_folder_id)) {
            $query['parent_folder_id'] = $parent_folder_id;
        }

        return $this->get($api, $query);
    }

    /**
     * 查询文件夹详情
     *
     * @author gjw
     * @created 2025-08-05 13:55:19
     *
     * @param string $folder_id 文件夹 ID。
     * @return array
     */
    public function readFolder(string $folder_id)
    {
        $api = '/v1/folders/:folder_id';
        $api = str_replace(':folder_id', $folder_id, $api);

        return $this->get($api);
    }
}
